#pragma once

#include <iostream>
#include <functional>

class Task
{
    typedef std::function<int(int, int)> func_t;

public:
    Task()
    {
    }
    Task(int x, int y, func_t func) : _x(x), _y(y), _callback(func)
    {
    }

    int operator()()
    {
        int res = _callback(_x, _y);
        return res;
    }
    ~Task()
    {
    }

private:
    int _x;
    int _y;
    func_t _callback;
};